/**
 * 获取指定的 URL 参数值 http://localhost/pages/setmeal_detail.html?id=3&name=jack
 *
 * @param paraName
 * @returns {string}
 */
function getUrlParam(paraName) {
    //  1. 获取当前页面的 URL
    var url = document.location.toString();
    console.log(url);   //  http://localhost/pages/setmeal_detail.html?id=3
    //  2. 按 ? 分割 URL，分离查询参数部分
    var arrObj = url.split("?");
    //  3. 检查是否有查询参数
    if (arrObj.length > 1) {
        //  有查询参数，继续解析
        //  4. 按 & 分割查询参数，得到键值对数组（arrPara[0] = "id=3" arrPara[1] = "name=jack"）
        var arrPara = arrObj[1].split("&");
        var arr;
        //  5. 遍历所有键值对，查找目标参数
        for (var i = 0; i < arrPara.length; i++) {
            //  拆分成 [key, value]（[id, 3], [name, jack]）
            arr = arrPara[i].split("=");
            //  例如，如果 paraName = "id"，它会检查 arr[0] 是否等于 "id"，如果是，就返回 arr[1]（即 "3"）。
            if (arr != null && arr[0] == paraName) {
                //  找到目标参数，返回它的值
                return arr[1];
            }
        }
        //  如果没有找到匹配的参数，返回空字符串 ""。
        return "";
    } else {
        //  如果 arrObj.length <= 1，说明 URL 中没有 ?，即没有查询参数，直接返回空字符串。
        return "";
    }
    //  现代浏览器支持 URLSearchParams，可以更简洁地实现；这样代码更简洁，且能正确处理特殊字符（如 =、& 等）。
    /*const urlParams = new URLSearchParams(window.location.search);
    //  如果不存在，返回空字符串
    return urlParams.get(paraName) || "";*/
}

/**
 * 获得当前日期，返回字符串
 *
 * @returns {string}
 */
function getToday() {
    var today = new Date();
    var year = today.getFullYear();
    var month = today.getMonth() + 1;   //  0 表示 1 月，1 表示 2 月
    var day = today.getDate();
    return (year + "-" + month + "-" + day);
}

/**
 * 获得指定日期后指定天数的日期
 *
 * @param date
 * @param days
 * @returns {string}
 */
function getSpecifiedDate(date, days) {
    //  获取指定天之后的日期
    date.setDate(date.getDate() + days);
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    return (year + "-" + month + "-" + day);
}

/**
 * 手机号校验
 *  1 -- 以 1 为开头；
 *  2 -- 第二位可为 3,4,5,7,8,9 中的任意一位；
 *  3 -- 最后以 0-9 的 9 个整数结尾。
 *
 * @param telephone
 * @returns {boolean}
 */
function checkTelephone(telephone) {
    var reg = /^[1][3,4,5,7,8,9][0-9]{9}$/;
    if (!reg.test(telephone)) {
        return false;
    } else {
        return true;
    }
}

/**
 * 身份证号码校验
 * 身份证号码为 15 位或者 18 位，15 位时全为数字，18 位前 17 位为数字，最后一位是校验位，可能为数字或字母 X
 */
function checkIdCard(idCard) {
    var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
    if (reg.test(idCard)) {
        return true;
    } else {
        return false;
    }
}

//  定时器对象，用于页面 30 秒倒计时效果
var clock = '';
var nums = 30;
//  按钮对象
var validateCodeButton;

/**
 * 基于定时器实现 30 秒倒计时效果
 */
function doLoop() {
    //  将按钮置为不可点击
    validateCodeButton.disabled = true;
    nums--;
    if (nums > 0) {
        validateCodeButton.value = nums + '秒后重新获取';
    } else {
        //  清除 js 定时器
        clearInterval(clock);
        //  按钮又可以点击了
        validateCodeButton.disabled = false;
        validateCodeButton.value = '重新获取验证码';
        //  重置时间
        nums = 30;
    }
}